package com.roads.project.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.roads.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 项目标段详情对象 pro_institution_detail
 *
 * @author nhp
 * @date 2021-12-03
 */
public class ProInstitutionDetail extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 标段ID
     */
    private Integer institutionId;

    /**
     * 标段编号
     */
    private String institutionCode;

    /**
     * 标段名称
     */
    private String institutionName;

    /**
     * 机构内码
     */
    private String innerCode;

    /**
     * 起始桩号
     */
    private String beginStation;

    /**
     * 截止桩号
     */
    private String endStation;

    /**
     * 标段长度
     */
    private Integer bidLength;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date beginDate;

    /**
     * 截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 是否自然月
     */
    private String isNaturalMonth;

    /**
     * 业务上报日
     */
    private Integer businessReportingDate;

    /**
     * 保留小数位
     */
    private Integer decimalPlace;

    /**
     * 中标总价
     */
    private BigDecimal successfulBidTotal;

    /**
     * 合同总价
     */
    private BigDecimal contractTotal;

    /**
     * 清单总价
     */
    private BigDecimal boqTotal;

    /**
     * 监理标段-施工期金额
     */
    private BigDecimal constructionPeriodTotal;

    /**
     * 监理标段-缺陷期金额
     */
    private BigDecimal defectPeriodTotal;

    /**
     * 监理标段-冬休期金额
     */
    private BigDecimal winterPeriodTotal;

    /**
     * 监理标段-利润
     */
    private BigDecimal profitTotal;

    /**
     * 暂定金
     */
    private BigDecimal provisionalDepositTotal;

    /**
     * 计日工
     */
    private BigDecimal dayLaborTotal;

    /**
     * 其他金额
     */
    private BigDecimal otherTotal;

    /**
     * 变更金额
     */
    private BigDecimal changeTotal;

    /**
     * 动员预付款起扣比例
     */
    private Integer advancePaymentBegin;

    /**
     * 不可预见费
     */
    private BigDecimal unforeseenTotal;

    /**
     * 动员预付款止扣比例
     */
    private Integer advancePaymentEnd;

    /**
     * 保留金扣款比例
     */
    private Integer retentionMoneyDeduction;

    /**
     * 保留金限额比例
     */
    private Integer retentionMoneyQuota;

    /**
     * 是否允许超计量 0 否 1 是
     */
    private String ultraMeasure;

    /**
     * 起始桩号（支线）
     */
    private String branchBeginStation;

    /**
     * 截止桩号（支线）
     */
    private String branchEndStation;

    /**
     * 标段长度（支线）
     */
    private Integer branchBidLength;

    /**
     * 起始桩号（过境段）
     */
    private String transitBeginStation;

    /**
     * 截止桩号（过境段）
     */
    private String transitEndStation;

    /**
     * 标段长度（过境段）
     */
    private Integer transitBidLength;

    /**
     * 起始桩号（连接线）
     */
    private String connectionBeginStation;

    /**
     * 截止桩号（连接线）
     */
    private String connectionEndStation;

    /**
     * 标段长度（连接线）
     */
    private Integer connectionBidLength;

    /**
     * 起始桩号（左幅）
     */
    private String leftBeginStation;

    /**
     * 截止桩号（左幅）
     */
    private String leftEndStation;

    /**
     * 标段长度（左幅）
     */
    private Integer leftBidLength;

    /**
     * 起始桩号（右幅）
     */
    private String rightBeginStation;

    /**
     * 截止桩号（右幅）
     */
    private String rightEndStation;

    /**
     * 标段长度（右幅）
     */
    private Integer rightBidLength;

    public void setInstitutionId(Integer institutionId) {
        this.institutionId = institutionId;
    }

    public Integer getInstitutionId() {
        return institutionId;
    }

    public void setInstitutionCode(String institutionCode) {
        this.institutionCode = institutionCode;
    }

    public String getInstitutionCode() {
        return institutionCode;
    }

    public void setInstitutionName(String institutionName) {
        this.institutionName = institutionName;
    }

    public String getInstitutionName() {
        return institutionName;
    }

    public String getInnerCode() {
        return innerCode;
    }

    public void setInnerCode(String innerCode) {
        this.innerCode = innerCode;
    }

    public void setBeginStation(String beginStation) {
        this.beginStation = beginStation;
    }

    public String getBeginStation() {
        return beginStation;
    }

    public void setEndStation(String endStation) {
        this.endStation = endStation;
    }

    public String getEndStation() {
        return endStation;
    }

    public void setBidLength(Integer bidLength) {
        this.bidLength = bidLength;
    }

    public Integer getBidLength() {
        return bidLength;
    }

    public void setBeginDate(Date beginDate) {
        this.beginDate = beginDate;
    }

    public Date getBeginDate() {
        return beginDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setIsNaturalMonth(String isNaturalMonth) {
        this.isNaturalMonth = isNaturalMonth;
    }

    public String getIsNaturalMonth() {
        return isNaturalMonth;
    }

    public void setBusinessReportingDate(Integer businessReportingDate) {
        this.businessReportingDate = businessReportingDate;
    }

    public Integer getBusinessReportingDate() {
        return businessReportingDate;
    }

    public Integer getDecimalPlace() {
        return decimalPlace;
    }

    public void setDecimalPlace(Integer decimalPlace) {
        this.decimalPlace = decimalPlace;
    }

    public BigDecimal getSuccessfulBidTotal() {
        return successfulBidTotal;
    }

    public void setSuccessfulBidTotal(BigDecimal successfulBidTotal) {
        this.successfulBidTotal = successfulBidTotal;
    }

    public BigDecimal getContractTotal() {
        return contractTotal;
    }

    public void setContractTotal(BigDecimal contractTotal) {
        this.contractTotal = contractTotal;
    }

    public BigDecimal getBoqTotal() {
        return boqTotal;
    }

    public void setBoqTotal(BigDecimal boqTotal) {
        this.boqTotal = boqTotal;
    }

    public BigDecimal getConstructionPeriodTotal() {
        return constructionPeriodTotal;
    }

    public void setConstructionPeriodTotal(BigDecimal constructionPeriodTotal) {
        this.constructionPeriodTotal = constructionPeriodTotal;
    }

    public BigDecimal getProfitTotal() {
        return profitTotal;
    }

    public void setProfitTotal(BigDecimal profitTotal) {
        this.profitTotal = profitTotal;
    }

    public BigDecimal getDefectPeriodTotal() {
        return defectPeriodTotal;
    }

    public void setDefectPeriodTotal(BigDecimal defectPeriodTotal) {
        this.defectPeriodTotal = defectPeriodTotal;
    }

    public BigDecimal getWinterPeriodTotal() {
        return winterPeriodTotal;
    }

    public void setWinterPeriodTotal(BigDecimal winterPeriodTotal) {
        this.winterPeriodTotal = winterPeriodTotal;
    }

    public BigDecimal getProvisionalDepositTotal() {
        return provisionalDepositTotal;
    }

    public void setProvisionalDepositTotal(BigDecimal provisionalDepositTotal) {
        this.provisionalDepositTotal = provisionalDepositTotal;
    }

    public BigDecimal getDayLaborTotal() {
        return dayLaborTotal;
    }

    public void setDayLaborTotal(BigDecimal dayLaborTotal) {
        this.dayLaborTotal = dayLaborTotal;
    }

    public BigDecimal getOtherTotal() {
        return otherTotal;
    }

    public void setOtherTotal(BigDecimal otherTotal) {
        this.otherTotal = otherTotal;
    }

    public BigDecimal getChangeTotal() {
        return changeTotal;
    }

    public void setChangeTotal(BigDecimal changeTotal) {
        this.changeTotal = changeTotal;
    }

    public void setUnforeseenTotal(BigDecimal unforeseenTotal) {
        this.unforeseenTotal = unforeseenTotal;
    }

    public void setAdvancePaymentBegin(Integer advancePaymentBegin) {
        this.advancePaymentBegin = advancePaymentBegin;
    }

    public Integer getAdvancePaymentBegin() {
        return advancePaymentBegin;
    }

    public BigDecimal getUnforeseenTotal() {
        return unforeseenTotal;
    }

    public void setAdvancePaymentEnd(Integer advancePaymentEnd) {
        this.advancePaymentEnd = advancePaymentEnd;
    }

    public Integer getAdvancePaymentEnd() {
        return advancePaymentEnd;
    }

    public void setRetentionMoneyDeduction(Integer retentionMoneyDeduction) {
        this.retentionMoneyDeduction = retentionMoneyDeduction;
    }

    public Integer getRetentionMoneyDeduction() {
        return retentionMoneyDeduction;
    }

    public void setRetentionMoneyQuota(Integer retentionMoneyQuota) {
        this.retentionMoneyQuota = retentionMoneyQuota;
    }

    public Integer getRetentionMoneyQuota() {
        return retentionMoneyQuota;
    }

    public void setUltraMeasure(String ultraMeasure) {
        this.ultraMeasure = ultraMeasure;
    }

    public String getUltraMeasure() {
        return ultraMeasure;
    }

    public void setBranchBeginStation(String branchBeginStation) {
        this.branchBeginStation = branchBeginStation;
    }

    public String getBranchBeginStation() {
        return branchBeginStation;
    }

    public void setBranchEndStation(String branchEndStation) {
        this.branchEndStation = branchEndStation;
    }

    public String getBranchEndStation() {
        return branchEndStation;
    }

    public void setBranchBidLength(Integer branchBidLength) {
        this.branchBidLength = branchBidLength;
    }

    public Integer getBranchBidLength() {
        return branchBidLength;
    }

    public void setTransitBeginStation(String transitBeginStation) {
        this.transitBeginStation = transitBeginStation;
    }

    public String getTransitBeginStation() {
        return transitBeginStation;
    }

    public void setTransitEndStation(String transitEndStation) {
        this.transitEndStation = transitEndStation;
    }

    public String getTransitEndStation() {
        return transitEndStation;
    }

    public void setTransitBidLength(Integer transitBidLength) {
        this.transitBidLength = transitBidLength;
    }

    public Integer getTransitBidLength() {
        return transitBidLength;
    }

    public void setConnectionBeginStation(String connectionBeginStation) {
        this.connectionBeginStation = connectionBeginStation;
    }

    public String getConnectionBeginStation() {
        return connectionBeginStation;
    }

    public void setConnectionEndStation(String connectionEndStation) {
        this.connectionEndStation = connectionEndStation;
    }

    public String getConnectionEndStation() {
        return connectionEndStation;
    }

    public void setConnectionBidLength(Integer connectionBidLength) {
        this.connectionBidLength = connectionBidLength;
    }

    public Integer getConnectionBidLength() {
        return connectionBidLength;
    }

    public void setLeftBeginStation(String leftBeginStation) {
        this.leftBeginStation = leftBeginStation;
    }

    public String getLeftBeginStation() {
        return leftBeginStation;
    }

    public void setLeftEndStation(String leftEndStation) {
        this.leftEndStation = leftEndStation;
    }

    public String getLeftEndStation() {
        return leftEndStation;
    }

    public void setLeftBidLength(Integer leftBidLength) {
        this.leftBidLength = leftBidLength;
    }

    public Integer getLeftBidLength() {
        return leftBidLength;
    }

    public void setRightBeginStation(String rightBeginStation) {
        this.rightBeginStation = rightBeginStation;
    }

    public String getRightBeginStation() {
        return rightBeginStation;
    }

    public void setRightEndStation(String rightEndStation) {
        this.rightEndStation = rightEndStation;
    }

    public String getRightEndStation() {
        return rightEndStation;
    }

    public void setRightBidLength(Integer rightBidLength) {
        this.rightBidLength = rightBidLength;
    }

    public Integer getRightBidLength() {
        return rightBidLength;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("institutionId", getInstitutionId())
                .append("institutionCode", getInstitutionCode())
                .append("institutionName", getInstitutionName())
                .append("innerCode", getInnerCode())
                .append("beginStation", getBeginStation())
                .append("endStation", getEndStation())
                .append("bidLength", getBidLength())
                .append("beginDate", getBeginDate())
                .append("endDate", getEndDate())
                .append("isNaturalMonth", getIsNaturalMonth())
                .append("businessReportingDate", getBusinessReportingDate())
                .append("successfulBidTotal", getSuccessfulBidTotal())
                .append("contractTotal", getContractTotal())
                .append("boqTotal", getBoqTotal())
                .append("constructionPeriodTotal", getConstructionPeriodTotal())
                .append("defectPeriodTotal", getDefectPeriodTotal())
                .append("winterPeriodTotal", getWinterPeriodTotal())
                .append("provisionalDepositTotal", getProvisionalDepositTotal())
                .append("dayLaborTotal", getDayLaborTotal())
                .append("otherTotal", getOtherTotal())
                .append("changeTotal", getChangeTotal())
                .append("advancePaymentBegin", getAdvancePaymentBegin())
                .append("unforeseenTotal", getUnforeseenTotal())
                .append("advancePaymentEnd", getAdvancePaymentEnd())
                .append("retentionMoneyDeduction", getRetentionMoneyDeduction())
                .append("retentionMoneyQuota", getRetentionMoneyQuota())
                .append("ultraMeasure", getUltraMeasure())
                .append("branchBeginStation", getBranchBeginStation())
                .append("branchEndStation", getBranchEndStation())
                .append("branchBidLength", getBranchBidLength())
                .append("transitBeginStation", getTransitBeginStation())
                .append("transitEndStation", getTransitEndStation())
                .append("transitBidLength", getTransitBidLength())
                .append("connectionBeginStation", getConnectionBeginStation())
                .append("connectionEndStation", getConnectionEndStation())
                .append("connectionBidLength", getConnectionBidLength())
                .append("leftBeginStation", getLeftBeginStation())
                .append("leftEndStation", getLeftEndStation())
                .append("leftBidLength", getLeftBidLength())
                .append("rightBeginStation", getRightBeginStation())
                .append("rightEndStation", getRightEndStation())
                .append("rightBidLength", getRightBidLength())
                .append("remark", getRemark())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
